home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib12.dsk
/
APPLE IRS.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
20KB
|
392 lines
1 REM ***********************
2 REM * APPLE IRS *
3 REM * BY F. C. IRVING *
4 REM * COPYRIGHT (C) 1983 *
5 REM * BY MICROSPARC, INC. *
6 REM * LINCOLN, MA. 01773 *
7 REM ***********************
10 REM
12 ONERR GOTO 10000
16 Z = 0:N = 0:NY = 0:TT = 0:ST = 0:E = 0:V = 0:F = 0:A = 0:YR = 0
17 HOME : VTAB 2: HTAB 16: PRINT "********": HTAB 16: PRINT "*APLIRS*": HTAB 16: PRINT "********": VTAB 24: PRINT "** COPYRIGHT 1983, MICROSPARC, INC **"
18 VTAB 8: PRINT "INCOME TAX ESTIMATION USING 1982 RATES": PRINT : PRINT "CURRENT SYSTEM USES SCHEDULES :": PRINT : PRINT "1040,A,B,D,E,TC AND INCOME AVERAGING": PRINT
19 PRINT : PRINT "SEE ACCOMPANYING TEXT FOR DETAILS": VTAB 18: PRINT "FOR WHAT YEAR IS THIS ESTIMATE": PRINT : INPUT "USE THE FORM (XXXX) ";YR
20 HOME : VTAB 15: PRINT "OUTPUT TO PRINTER (P) OR SCREEN (S) ";: GET O$: PRINT O$: IF O$ = "S" THEN N = 10: GOTO 26
22 IF O$ < >"P" THEN GOTO 20
24 PRINT : INPUT "HOW MANY INTERVALS IN RANGES PLEASE ";N
25 IF N <3 THEN N = 3
26 DIM Y(20),LT(21),X(N),W(N),I(N),D(N),SC(N),C(N),S(N),TI(N),NT(N),GT(N),EX(N),DD(N),TX(N),PT%(N),NI(N),CG(N)
27 PY = 5105850: REM TOTAL OF PREVIOUS FOUR YEARS FOR INCOME AVERAGING THIS IS SET HIGH TO NEGATE AVERAGING TILL YOU PUT YOUR VALUE IN
28 SW(1) = 0: REM SWITCH TO PRINT ONLY ONE LINE OF OUTPUT
30 SW(2) = 0: REM SWITCH FOR FORMATING DISPLAY CHANGE
32 SW(3) = 0: REM SWITCH FOR AVERAGING INCOME
34 SW(4) = 0: REM SWITCH 2 FOR INCOME AVERAGING
38 GOTO 600
39 REM *****SUBROUTINES*****
40 TT = 0: FOR Z = 1 TO NY:TT = TT +Y(Z): NEXT Z: RETURN
42 VTAB 22: CALL -868: HTAB 5: INVERSE : PRINT "ENTER NEW VALUE ";: NORMAL : INPUT B$
44 IF B$ = "" THEN RETURN
46 Y(V) = INT( VAL(B$)):Z = V:SW(2) = 1: GOSUB 51:SW(2) = 0: VTAB (7 +V): HTAB 29: CALL -868: HTAB (35 -LT(V)): PRINT Y(V): RETURN
50 FOR Z = 1 TO NY
51 S$ = STR$(Y(Z))
52 LT(Z) = LEN(S$)
53 IF SW(2) = 1 THEN RETURN
54 NEXT
55 S$ = STR$(TT)
56 LT(NY +1) = LEN(S$): RETURN
60 FOR Z = 1 TO N:X(Z) = 0: NEXT
61 VTAB 20: HTAB 6: PRINT "(1=SINGLE VALUE 2=RANGE N=NO)"
62 VTAB 22: HTAB 5: PRINT "USE DIFFERENT VALUE? ";: GET A$: PRINT A$: IF A$ = "N" GOTO 84
63 A = VAL(A$): IF A <1 OR A >2 THEN GOTO 62
64 IF A = 2 THEN GOTO 72
65 VTAB 20: INVERSE : PRINT "SINGLE VALUE";: NORMAL : PRINT " U=USE RANGE R=RESTART"
66 VTAB 22: CALL -868: INVERSE : PRINT "ENTER ITEM # TO CHANGE (RET TO END) :";: NORMAL : GET V$: PRINT V$:V = VAL(V$)
67 IF V$ = "U" THEN A = 2: GOTO 64
68 IF V$ = "R" THEN POKE 34,0: RUN
69 IF V >NY THEN 66
70 IF V < = 0 AND V$ < > CHR$(13) THEN GOTO 64
71 IF V >0 THEN GOSUB 42: GOSUB 40: GOSUB 55: VTAB (9 +NY): HTAB 28: CALL -868: HTAB (35 -LT(NY +1)): PRINT TT: GOTO 66
72 IF A < >2 THEN GOTO 84
73 VTAB 20: INVERSE : PRINT "RANGE";: NORMAL : PRINT " U=USE SINGLE VALUE R=RESTART "
74 VTAB 22: CALL -868: INVERSE : PRINT "ENTER ITEM # TO CHANGE (RET TO END) :";: NORMAL : GET V$: PRINT V$:V = VAL(V$)
75 IF V$ = "U" THEN A = 1: GOTO 64
76 IF V$ = "R" THEN POKE 34,0: RUN
77 IF V >NY THEN 74
78 IF V < = 0 AND V$ < > CHR$(13) THEN GOTO 64
79 IF V >0 THEN GOSUB 42: GOSUB 40: GOSUB 55: VTAB (9 +NY): HTAB 29: CALL -868: HTAB (35 -LT(NY +1)): PRINT TT: GOTO 74
80 VTAB 22: CALL -868: HTAB 5: INVERSE : PRINT "INCREMENT";: NORMAL : PRINT " ";: PRINT TT;: PRINT " ";: INVERSE : PRINT N;" TIMES BY ";: INPUT V$:V = INT( VAL(V$))
81 IF V$ = "U" THEN A = 1: GOTO 64
82 IF V$ = "R" THEN POKE 34,0: RUN
83 X(1) = TT: FOR Z = 2 TO N:X(Z) = X(Z -1) +V: NEXT :SW(1) = 1: RETURN
84 X(1) = TT: FOR Z = 2 TO N:X(Z) = X(1): NEXT : RETURN
90 IF SC(Z) > = 0 THEN X(Z) = .5 *CG(Z): GOTO 93
91 IF C(Z) > = 0 THEN X(Z) = CG(Z): GOTO 93
92 IF C(Z) <0 AND SC(Z) <0 THEN X(Z) = SC(Z) +.5 *C(Z)
93 IF X(Z) < -3000 THEN X(Z) = -3000
94 IF ST = 3 AND X(Z) < -1500 THEN X(Z) = -1500
95 SC(Z) = X(Z):C(Z) = 0
96 RETURN
100 REM *****INCOME AVERAGING SUBROUTINE*****
105 POKE 34,0: HOME : VTAB 15: PRINT "WOULD YOU LIKE TO USE INCOME AVERAGING ";: GET A$: PRINT A$: IF A$ < >"Y" THEN RETURN
110 PY = .3 *PY:Z = 0:NT(Z) = PY:SW(3) = 1: GOSUB 3160:SW(3) = 0:T = TX(Z)
115 DIM AI(N),IT(N),TE(N)
120 FOR Z = 1 TO N
125 AI(Z) = NT(Z) -PY
130 IT(Z) = .2 *AI(Z) +PY
135 TE(Z) = NT(Z)
140 NT(Z) = IT(Z)
145 SW(3) = 1: GOSUB 3160:SW(3) = 0
150 NT(Z) = TE(Z)
155 TE(Z) = TX(Z)
160 TX(Z) = 4 *(TE(Z) -T) +TE(Z)
165 NEXT Z
170 SW(4) = 1
175 RETURN
200 REM *****BLOCK 200-599 ROOM FOR ADDITIONAL SUBROUTINES*****
600 REM *****MAIN PROGRAM BEGINS*****
602 HOME : PRINT : HTAB 14: INVERSE : PRINT "FILING STATUS": NORMAL
604 PRINT
606 HTAB 6: PRINT "1 SINGLE"
608 HTAB 6: PRINT "2 MARRIED - FILING JOINTLY"
610 HTAB 6: PRINT "3 MARRIED - FILING SEPARATELY"
612 HTAB 6: PRINT "4 QUALIFYING HOUSEHOLD HEAD"
614 HTAB 6: PRINT "5 QUALIFYING WIDOWER"
616 PRINT
618 HTAB 6: PRINT "WHAT IS YOUR STATUS (#) : ";: GET ST$: PRINT ST$:ST = VAL(ST$): IF ST <1 OR ST >5 THEN 600
620 PRINT
622 HTAB 15: INVERSE : PRINT "EXEMPTIONS": NORMAL
624 PRINT
626 HTAB 6: PRINT "A YOURSELF"
628 HTAB 6: PRINT "B SPOUSE"
630 HTAB 6: PRINT "C DEPENDENT CHILDREN"
632 HTAB 6: PRINT "D OTHER DEPENDENTS"
634 HTAB 6: PRINT "E BLIND (YOU OR SPOUSE)"
636 HTAB 6: PRINT "F 65 OR OVER (YOU OR SPOUSE)"
638 PRINT
640 HTAB 6: PRINT "HOW MANY EXEMPTIONS HAVE YOU : ";: GET E$: PRINT E$:E = VAL(E$): IF E <1 THEN VTAB 12: GOTO 622
700 REM *****WAGES*****
705 HOME : PRINT : HTAB 17: INVERSE : PRINT "INCOME";: NORMAL : HTAB 30: PRINT "SCHEDULE:"
710 PRINT : POKE 34,3
715 Y(1) = 9000:Y(2) = 0:Y(3) = 0:Y(4) = 0:NY = 4: GOSUB 40: GOSUB 50
720 HTAB 18: FLASH : PRINT "WAGE";: NORMAL : HTAB 36: PRINT "1040"
725 PRINT
730 HTAB 12: PRINT "(CURRENT STATUS)"
735 VTAB 8: HTAB 6: PRINT "1. WAGES :";: HTAB (35 -LT(1)): PRINT Y(1)
740 HTAB 6: PRINT "2. SALARIES :";: HTAB (35 -LT(2)): PRINT Y(2)
745 HTAB 6: PRINT "3. TIPS :";: HTAB (35 -LT(3)): PRINT Y(3)
750 HTAB 6: PRINT "4. OTHER :";: HTAB (35 -LT(4)): PRINT Y(4)
755 PRINT : HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(5)): PRINT TT
760 GOSUB 60:TT = 0
765 FOR Z = 1 TO N:W(Z) = X(Z): NEXT Z
800 REM *****INTEREST INCOME*****
802 HOME
804 Y(1) = 355:Y(2) = 123:Y(3) = 0:NY = 3: GOSUB 40: GOSUB 50
806 HTAB 16: FLASH : PRINT "INTEREST";: NORMAL : CALL -868: HTAB 39: PRINT "B"
808 PRINT
810 HTAB 12: PRINT "(CURRENT STATUS)"
812 PRINT
814 HTAB 6: PRINT "1. BANK # 1 :";: HTAB (35 -LT(1)): PRINT Y(1)
816 HTAB 6: PRINT "2. BANK # 2 :";: HTAB (35 -LT(2)): PRINT Y(2)
818 HTAB 6: PRINT "3. OTHER :";: HTAB (35 -LT(3)): PRINT Y(3)
842 PRINT
844 HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
846 PRINT : GOSUB 60:TT = 0
848 FOR Z = 1 TO N:I(Z) = X(Z): NEXT Z
850 REM *****DIVIDEND INCOME*****
852 HOME
854 Y(1) = 32:Y(2) = 130:Y(3) = 87:Y(4) = 86:Y(5) = 110:Y(6) = 0:Y(7) = 0:Y(8) = 0:NY = 8: GOSUB 40: GOSUB 50
856 HTAB 16: FLASH : PRINT "DIVIDEND";: NORMAL : HTAB 39: PRINT "B"
858 PRINT
860 HTAB 12: PRINT "(CURRENT STATUS)"
862 PRINT
864 HTAB 6: PRINT "1. STOCK #1 :";: HTAB (35 -LT(1)): PRINT Y(1)
866 HTAB 6: PRINT "2. STOCK #2 :";: HTAB (35 -LT(2)): PRINT Y(2)
868 HTAB 6: PRINT "3. STOCK #3 :";: HTAB (35 -LT(3)): PRINT Y(3)
870 HTAB 6: PRINT "4. STOCK #4 :";: HTAB (35 -LT(4)): PRINT Y(4)
872 HTAB 6: PRINT "5. STOCK #5 :";: HTAB (35 -LT(5)): PRINT Y(5)
874 HTAB 6: PRINT "6. STOCK #6 :";: HTAB (35 -LT(6)): PRINT Y(6)
876 HTAB 6: PRINT "7. STOCK #7 :";: HTAB (35 -LT(7)): PRINT Y(7)
878 HTAB 6: PRINT "8. OTHER :";: HTAB (35 -LT(8)): PRINT Y(8)
892 PRINT
894 HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
896 PRINT : GOSUB 60:TT = 0
898 FOR Z = 1 TO N:D(Z) = X(Z): NEXT Z
900 REM *****LINES 900-999 FOR LINE 9*****
1000 REM *****LINES 1000-1099 FOR LINE 10*****
1100 REM *****LINES 1100-1199 FOR LINE 11*****
1200 REM *****CAPITAL GAINS*****
1203 HOME
1206 Y(1) = 0:Y(2) = 0:NY = 2: GOSUB 40: GOSUB 50
1209 HTAB 9: FLASH : PRINT "SHORT TERM CAPITAL GAIN";: NORMAL : HTAB 39: PRINT "D"
1212 PRINT
1215 HTAB 12: PRINT "(CURRENT STATUS)"
1218 PRINT
1221 HTAB 6: PRINT "1. SALE OF STOCK :";: HTAB (35 -LT(1)): PRINT Y(1)
1224 HTAB 6: PRINT "2. OTHER :";: HTAB (35 -LT(2)): PRINT Y(2)
1227 PRINT
1230 HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
1233 PRINT : GOSUB 60:TT = 0
1236 FOR Z = 1 TO N:SC(Z) = X(Z): NEXT Z
1239 REM *****LONG TERM*****
1242 HOME
1245 HTAB 9: FLASH : PRINT "LONG TERM CAPITAL GAIN";: NORMAL : HTAB 39: PRINT "D": PRINT
1248 HTAB 12: PRINT "(CURRENT STATUS)": PRINT
1251 Y(1) = 0:Y(2) = 465:Y(3) = 0:Y(4) = 0:NY = 4: GOSUB 40: GOSUB 50
1254 HTAB 6: PRINT "1. SALE OF HOUSE :";: HTAB (35 -LT(1)): PRINT Y(1)
1257 HTAB 6: PRINT "2. SALE OF STOCKS :";: HTAB (35 -LT(2)): PRINT Y(2)
1260 HTAB 6: PRINT "2. DISTRIBUTIONS :";: HTAB (35 -LT(3)): PRINT Y(3)
1263 HTAB 6: PRINT "4. OTHER :";: HTAB (35 -LT(4)): PRINT Y(4)
1266 PRINT : HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
1269 GOSUB 60:TT = 0
1272 FOR Z = 1 TO N:C(Z) = X(Z): NEXT Z
1275 FOR Z = 1 TO N:CG(Z) = C(Z) +SC(Z): NEXT Z
1278 FOR Z = 1 TO N
1281 IF CG(Z) <0 THEN GOSUB 90
1284 NEXT Z
1300 REM *****LINES 1300-1399 FOR LINE 13*****
1400 REM *****LINES 1400-1499 FOR LINE 14*****
1500 REM *****LINES 1500-1599 FOR LINE 15*****
1600 REM *****LINES 1600-1699 FOR LINE 16*****
1700 REM *****SUPPLEMENTAL INCOME*****
1705 HOME
1710 Y(1) = 1051:Y(2) = 2575:Y(3) = 0:NY = 3: GOSUB 40: GOSUB 50
1715 HTAB 14: FLASH : PRINT "SUPPLEMENTAL";: NORMAL : HTAB 39: PRINT "E"
1720 PRINT
1725 HTAB 12: PRINT "(CURRENT STATUS)"
1730 PRINT
1735 HTAB 6: PRINT "1. ROYALTIES :";: HTAB (35 -LT(1)): PRINT Y(1)
1740 HTAB 6: PRINT "2. RENTS :";: HTAB (35 -LT(2)): PRINT Y(2)
1745 HTAB 6: PRINT "3. OTHER :";: HTAB (35 -LT(3)): PRINT Y(3)
1750 PRINT : HTAB 9: PRINT "TOTAL :";: HTAB (35 -LT(NY +1)): PRINT TT
1755 GOSUB 60:TT = 0
1760 FOR Z = 1 TO N:S(Z) = X(Z): NEXT Z
1800 REM *****LINES 1800-1899 FOR LINE 18*****
1900 REM *****LINES 1900-1999 FOR LINE 19*****
2000 REM *****LINES 2000-2099 FOR LINE 20*****
2200 REM *****BLOCK 2200-2900 FOR LINES 22-29*****
3000 REM *****DEDUCTIONS*****
3002 HOME
3006 NY = 8: FOR Z = 1 TO NY:Y(Z) = 0: NEXT : GOSUB 40: GOSUB 50
3008 HTAB 15: FLASH : PRINT "DEDUCTIONS";: NORMAL : HTAB 39: PRINT "A"
3010 PRINT
3012 HTAB 12: PRINT "(CURRENT STATUS)"
3014 PRINT
3016 HTAB 2: PRINT "1. MEDICAL EXPENSES :";: HTAB (35 -LT(1)): PRINT Y(1)
3018 HTAB 2: PRINT "2. STATE AND LOCAL TAXES :";: HTAB (35 -LT(2)): PRINT Y(2)
3020 HTAB 2: PRINT "3. REAL ESTATE TAXES :";: HTAB (35 -LT(3)): PRINT Y(3)
3022 HTAB 2: PRINT "4. GENERAL SALES TAX :";: HTAB (35 -LT(4)): PRINT Y(4)
3024 HTAB 2: PRINT "5. PERSONAL PROPERTY TAX: ";: HTAB (35 -LT(5)): PRINT Y(5)
3026 HTAB 2: PRINT "6. INTEREST EXPENSE :";: HTAB (35 -LT(6)): PRINT Y(6)
3028 HTAB 2: PRINT "7. CONTRIBUTIONS :";: HTAB (35 -LT(7)): PRINT Y(7)
3029 HTAB 2: PRINT "8. MISCELLANEOUS :";: HTAB (35 -LT(8)): PRINT Y(8)
3030 PRINT : HTAB 9: PRINT "TOTAL DEDUCTIONS :";: HTAB 32: PRINT "STD"
3032 GOSUB 60:TT = 0
3034 IF X(N) = 0 THEN 3046
3036 FOR Z = 1 TO N: IF ST = 1 OR ST = 4 THEN X(Z) = X(Z) -2300
3038 IF ST = 2 OR ST = 5 THEN X(Z) = X(Z) -3400
3040 IF ST = 3 THEN X(Z) = X(Z) -1700
3042 IF X(Z) <0 THEN X(Z) = 0
3044 NEXT Z
3046 IF X(N) = 0 THEN DD(1) = X(1): FOR Z = 2 TO N:DD(Z) = X(1): NEXT Z: GOTO 3100
3048 FOR Z = 1 TO N:DD(Z) = X(Z): NEXT Z
3100 REM *****TAX COMPUTATION*****
3102 FOR Z = 1 TO N
3104 IF ST = 2 AND D(Z) +I(Z) > = 400 THEN EX(Z) = 400: GOTO 3108
3105 IF ST = 2 AND D(Z) +I(Z) >200 THEN EX(Z) = D(Z) +I(Z): GOTO 3108
3106 IF D(Z) +I(Z) > = 200 THEN EX(Z) = 200: GOTO 3108
3107 EX(Z) = D(Z) +I(Z)
3108 NEXT Z
3110 FOR Z = 1 TO N:TI(Z) = W(Z) +SC(Z) +I(Z) +D(Z) -EX(Z) +.4 *(C(Z)) +S(Z):GT(Z) = W(Z) +I(Z) +D(Z) +CG(Z) +S(Z)
3115 TI(Z) = INT(TI(Z)):GT(Z) = INT(GT(Z))
3120 NEXT Z
3125 F = 1000 *E
3130 FOR Z = 1 TO N:NT(Z) = TI(Z) -F -DD(Z)
3135 IF ST = 1 OR ST = 4 THEN DD(Z) = DD(Z) +2300: REM RE-ESTABLISHES DEDUCTIONS FOR PRINTOUT
3140 IF ST = 2 OR ST = 5 THEN DD(Z) = DD(Z) +3400
3145 IF ST = 3 THEN DD(Z) = DD(Z) +1700
3150 NEXT Z
3155 IF (TI(1) -.3 *PY) >3000 THEN GOSUB 105: IF TX(1) >0 THEN GOTO 8000
3160 IF ST = 1 THEN GOTO 3200
3165 IF ST = 2 THEN GOTO 3300
3175 IF ST = 3 THEN GOTO 3400
3180 IF ST = 4 THEN GOTO 3500
3185 IF ST = 5 THEN GOTO 3300
3199 REM *****TAX SCHEDULE FOR SINGLE TAXPAYER*****
3200 IF SW(3) = 1 THEN GOTO 3204
3202 FOR Z = 1 TO N
3204 IF NT(Z) < = 2300 THEN TX(Z) = 0: GOTO 3238
3206 IF NT(Z) < = 3400 THEN TX(Z) = INT(.12 *(NT(Z) -2300)): GOTO 3238
3208 IF NT(Z) < = 4400 THEN TX(Z) = INT(132 +.14 *(NT(Z) -3400)): GOTO 3238
3210 IF NT(Z) < = 6500 THEN TX(Z) = INT(272 +.16 *(NT(Z) -4400)): GOTO 3238
3212 IF NT(Z) < = 8500 THEN TX(Z) = INT(608 +.17 *(NT(Z) -6500)): GOTO 3238
3214 IF NT(Z) < = 10800 THEN TX(Z) = INT(948 +.19 *(NT(Z) -8500)): GOTO 3238
3216 IF NT(Z) < = 12900 THEN TX(Z) = INT(1385 +.22 *(NT(Z) -10800)): GOTO 3238
3218 IF NT(Z) < = 15000 THEN TX(Z) = INT(1847 +.23 *(NT(Z) -12900)): GOTO 3238
3220 IF NT(Z) < = 18200 THEN TX(Z) = INT(2330 +.27 *(NT(Z) -15000)): GOTO 3238
3222 IF NT(Z) < = 23500 THEN TX(Z) = INT(3194 +.31 *(NT(Z) -18200)): GOTO 3238
3224 IF NT(Z) < = 28800 THEN TX(Z) = INT(4837 +.35 *(NT(Z) -23500)): GOTO 3238
3226 IF NT(Z) < = 34100 THEN TX(Z) = INT(6692 +.40 *(NT(Z) -28800)): GOTO 3238
3228 IF NT(Z) < = 41500 THEN TX(Z) = INT(8812 +.44 *(NT(Z) -31400)): GOTO 3238
3230 IF NT(Z) >41500 THEN TX(Z) = INT(12068 +.50 *(NT(Z) -41500)): GOTO 3238
3238 IF SW(3) = 1 THEN RETURN
3240 NEXT Z: GOTO 8000
3299 REM *****TAX SCHEDULE FOR MARRIEDS FILING JOINTLY*****
3300 IF SW(3) = 1 THEN GOTO 3304
3302 FOR Z = 1 TO N
3304 IF NT(Z) < = 3400 THEN TX(Z) = 0: GOTO 3338
3306 IF NT(Z) < = 5500 THEN TX(Z) = INT(.12 *(NT(Z) -3400)): GOTO 3338
3308 IF NT(Z) < = 7600 THEN TX(Z) = INT(252 +.14 *(NT(Z) -5500)): GOTO 3338
3310 IF NT(Z) < = 11900 THEN TX(Z) = INT(546 +.16 *(NT(Z) -7600)): GOTO 3338
3312 IF NT(Z) < = 16000 THEN TX(Z) = INT(1234 +.19 *(NT(Z) -11900)): GOTO 3338
3314 IF NT(Z) < = 20200 THEN TX(Z) = INT(2013 +.22 *(NT(Z) -16000)): GOTO 3338
3316 IF NT(Z) < = 24600 THEN TX(Z) = INT(2937 +.25 *(NT(Z) -20200)): GOTO 3338
3318 IF NT(Z) < = 29900 THEN TX(Z) = INT(4037 +.29 *(NT(Z) -24600)): GOTO 3338
3320 IF NT(Z) < = 35200 THEN TX(Z) = INT(5574 +.33 *(NT(Z) -29900)): GOTO 3338
3322 IF NT(Z) < = 45800 THEN TX(Z) = INT(7323 +.39 *(NT(Z) -35200)): GOTO 3338
3324 IF NT(Z) < = 60000 THEN TX(Z) = INT(11457 +.44 *(NT(Z) -45800)): GOTO 3338
3326 IF NT(Z) < = 85600 THEN TX(Z) = INT(17705 +.49 *(NT(Z) -60000)): GOTO 3338
3328 IF NT(Z) >85600 THEN TX(Z) = INT(30249 +.50 *(NT(Z) -85600)): GOTO 3338
3338 IF SW(3) = 1 THEN RETURN
3340 NEXT Z: GOTO 8000
3399 REM *****TAX SCHEDULE FOR MARRIEDS FILING SEPARATELY*****
3400 IF SW(3) = 1 THEN GOTO 3404
3402 FOR Z = 1 TO N
3404 IF NT(Z) < = 1700 THEN TX(Z) = 0: GOTO 3438
3406 IF NT(Z) < = 2750 THEN TX(Z) = INT(.12 *(NT(Z) -1700)): GOTO 3438
3408 IF NT(Z) < = 3800 THEN TX(Z) = INT(126 +.14 *(NT(Z) -2750)): GOTO 3438
3410 IF NT(Z) < = 5950 THEN TX(Z) = INT(273 +.16 *(NT(Z) -3800)): GOTO 3438
3412 IF NT(Z) < = 8000 THEN TX(Z) = INT(617 +.19 *(NT(Z) -5950)): GOTO 3438
3414 IF NT(Z) < = 10100 THEN TX(Z) = INT(1006 +.22 *(NT(Z) -8000)): GOTO 3438
3416 IF NT(Z) < = 12300 THEN TX(Z) = INT(1468 +.25 *(NT(Z) -10100)): GOTO 3438
3418 IF NT(Z) < = 14950 THEN TX(Z) = INT(2018 +.29 *(NT(Z) -12300)): GOTO 3438
3420 IF NT(Z) < = 17600 THEN TX(Z) = INT(2787 +.33 *(NT(Z) -14950)): GOTO 3438
3422 IF NT(Z) < = 22900 THEN TX(Z) = INT(3661 +.39 *(NT(Z) -17600)): GOTO 3438
3424 IF NT(Z) < = 30000 THEN TX(Z) = INT(5728 +.44 *(NT(Z) -22900)): GOTO 3438
3426 IF NT(Z) < = 42800 THEN TX(Z) = INT(8852 +.49 *(NT(Z) -30000)): GOTO 3438
3428 IF NT(Z) >42800 THEN TX(Z) = INT(15124 +.50 *(NT(Z) -42800)): GOTO 3438
3438 IF SW(3) = 1 THEN RETURN
3440 NEXT Z: GOTO 8000
3499 REM *****TAX SCHEDULE FOR HEAD OF HOUSEHOLD*****
3500 IF SW(3) = 1 THEN GOTO 3204
3502 FOR Z = 1 TO N
3504 IF NT(Z) < = 2300 THEN TX(Z) = 0: GOTO 3538
3506 IF NT(Z) < = 4400 THEN TX(Z) = INT(.12 *(NT(Z) -2300)): GOTO 3538
3508 IF NT(Z) < = 6500 THEN TX(Z) = INT(252 +.14 *(NT(Z) -4400)): GOTO 3538
3510 IF NT(Z) < = 8700 THEN TX(Z) = INT(546 +.16 *(NT(Z) -6500)): GOTO 3538
3512 IF NT(Z) < = 11800 THEN TX(Z) = INT(898 +.20 *(NT(Z) -8700)): GOTO 3538
3514 IF NT(Z) < = 15000 THEN TX(Z) = INT(1518 +.22 *(NT(Z) -11800)): GOTO 3538
3516 IF NT(Z) < = 18200 THEN TX(Z) = INT(2222 +.23 *(NT(Z) -15000)): GOTO 3538
3518 IF NT(Z) < = 23500 THEN TX(Z) = INT(2958 +.28 *(NT(Z) -18200)): GOTO 3538
3520 IF NT(Z) < = 28800 THEN TX(Z) = INT(4442 +.32 *(NT(Z) -23500)): GOTO 3538
3522 IF NT(Z) < = 34100 THEN TX(Z) = INT(6138 +.38 *(NT(Z) -28800)): GOTO 3538
3524 IF NT(Z) < = 44700 THEN TX(Z) = INT(8152 +.41 *(NT(Z) -34100)): GOTO 3538
3526 IF NT(Z) < = 60600 THEN TX(Z) = INT(12498 +.49 *(NT(Z) -44700)): GOTO 3538
3528 IF NT(Z) >60600 THEN TX(Z) = INT(20289 +.50 *(NT(Z) -60600)): GOTO 3538
3538 IF SW(3) = 1 THEN RETURN
3540 NEXT Z: GOTO 8000
3600 REM *****LINES 3600-3699 FOR LINE 36*****
3800 REM *****BLOCK 3800-4600 FOR CREDITS LINES 38-46 ON 1040*****
4800 REM *****BLOCK 4800-5300 FOR OTHER TAXES LINES 48-53 ON 1040*****
8000 REM *****FINAL TABLE SETUP*****
8005 FOR Z = 1 TO N
8010 PT%(Z) = (TX(Z)/TI(Z)) *100
8015 NI(Z) = GT(Z) -TX(Z)
8020 NEXT Z
8025 IF ST = 1 THEN ST$ = " S"
8030 IF ST = 2 THEN ST$ = "MJ"
8035 IF ST = 3 THEN ST$ = "MS"
8100 REM *****PRINTOUT*****
8103 POKE 34,0: HOME
8105 IF O$ = "P" THEN GOTO 8200
8110 INVERSE : PRINT " FEDERAL INCOME TAX ": FOR Z = 1 TO 38: PRINT " ";: NEXT Z: PRINT " "
8113 PRINT " ESTIMATE FOR ";YR;" BASED ON 1982 RATES ": FOR Z = 1 TO 38: PRINT " ";: NEXT Z: PRINT " "
8114 NORMAL
8115 VTAB 5: HTAB 1: INVERSE : PRINT "FS E GROSS DED. TAX % NET "
8120 NORMAL : PRINT
8125 FOR Z = 1 TO N
8130 PRINT ST$;
8135 HTAB 4: PRINT E;
8140 S$ = STR$(GT(Z)): HTAB (14 - LEN(S$)): PRINT GT(Z);
8145 S$ = STR$(DD(Z)): HTAB (21 - LEN(S$)): PRINT DD(Z);
8150 S$ = STR$(TX(Z)): HTAB (28 - LEN(S$)): PRINT TX(Z);
8155 S$ = STR$(PT%(Z)): HTAB (32 - LEN(S$)): PRINT PT%(Z);
8160 S$ = STR$(NI(Z)): HTAB (40 - LEN(S$)): PRINT NI(Z);
8165 IF SW(1) = 0 THEN Z = N
8170 NEXT
8175 IF SW(4) = 1 THEN PRINT : HTAB 10: PRINT "USED INCOME AVERAGING"
8180 PRINT : PRINT : PRINT
8185 HTAB 6: INVERSE : PRINT "WOULD YOU LIKE TO GO AGAIN ?";: NORMAL : GET A$
8190 IF A$ = "Y" THEN CLEAR : GOTO 1
8195 END
8200 REM PRINTER PRINTOUT
8205 PR# 1
8210 PRINT CHR$(9) +"130N";: PRINT CHR$(15);: REM PRINTER CONTROLS
8215 PRINT TAB( 60)"FEDERAL INCOME TAX": PRINT
8220 PRINT TAB( 51)"ESTIMATE FOR ";YR;" BASED ON 1982 RATES"
8225 PRINT
8230 HTAB 15: PRINT "FS E";: PRINT TAB( 6)"WAGE INT";: PRINT TAB( 7)"DIV CG";: PRINT TAB( 8)"SI GROSS";: PRINT TAB( 7)"TXBLE DED";: PRINT TAB( 8)"TAX %";: PRINT TAB( 9)"NET"
8235 FOR Z = 1 TO N
8240 HTAB 15: PRINT ST$;" ";E;
8245 S$ = STR$(W(Z)): PRINT TAB( 10 - LEN(S$))W(Z);
8250 S$ = STR$(I(Z)): PRINT TAB( 10 - LEN(S$))I(Z);
8255 S$ = STR$(D(Z)): PRINT TAB( 10 - LEN(S$))D(Z);
8260 S$ = STR$(CG(Z)): PRINT TAB( 11 - LEN(S$))CG(Z);
8265 S$ = STR$(S(Z)): PRINT TAB( 10 - LEN(S$))S(Z);
8270 S$ = STR$(GT(Z)): PRINT TAB( 12 - LEN(S$))GT(Z);
8275 S$ = STR$(TI(Z)): PRINT TAB( 12 - LEN(S$))TI(Z);
8280 S$ = STR$(DD(Z)): PRINT TAB( 10 - LEN(S$))DD(Z);
8285 S$ = STR$(TX(Z)): PRINT TAB( 11 - LEN(S$))TX(Z);
8290 S$ = STR$(PT%(Z)): PRINT TAB( 8 - LEN(S$))PT%(Z);"%";
8295 S$ = STR$(NI(Z)): PRINT TAB( 12 - LEN(S$))NI(Z)
8297 IF SW(1) = 0 THEN Z = N
8300 NEXT Z
8305 IF SW(4) = 1 THEN PRINT : PRINT TAB( 59)"USED INCOME AVERAGING"
8310 PRINT CHR$(18);: PRINT CHR$(9) +"40N";: REM PRINTER CONTROLS
8320 PR# 0: GOTO 8175
10000 REM *****ERROR ROUTINE*****
10010 PRINT CHR$(9) +"40N"
10020 NORMAL : TEXT : HOME
10030 PRINT "YOU HAVE ENCOUNTERED ERROR # "; PEEK(222)
10040 PRINT : PRINT "IN LINE # "; PEEK(218) + PEEK(219) *256;"."
10050 PRINT : PRINT "SEE PAGE 136 IN APPLESOFT MANUAL.": PRINT
10060 END